#ifndef Continent_h
#define Continent_h

#include <vector>
#include <string>
#include <ostream>

class Monde;
class Visitor;
class Joueur;
class Territoire;

/**
 * Classe Continent
 */
class Continent {

   friend std::ostream & operator<<(std::ostream &, const Continent &);
  
  public:

   void accept(Visitor * _visitor);
   /**
    * Constructeur
    */
   Continent(Monde * _monde, const char * _nom);
   /**
    * Destructeur
    */
   ~Continent();
   /**
    * Ajout d'un territoire
    */
   Territoire * addTerritoire(const char *, int);
   Monde * getMonde() { return monde; }
   const char * getNom() const;
   std::vector< Territoire * > * getTerritoires() { return &territoires; }
   const std::vector< Territoire * > * getTerritoires() const { return &territoires; }
   Territoire * getTerritoireByName(const char * _name);
   bool appartientAuJoueur(Joueur * _joueur);

  public:
   Monde * monde;
   char * nom;
   std::vector< Territoire * > territoires;
    
   
};
#endif

